package com.zzy.system.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.zzy.common.core.domain.BaseEntity;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 功能描述: 采购订单详情
 *
 * @author zhouzhiyong
 * @date 2025/07/23 01:11
 */
@Data
public class PurchaseOrderDetail  extends BaseEntity {
    //主键 自增
    private Integer purchaseOrderDetailId;
    private static final long serialVersionUID = 1L;
    /**
     * 采购订单的创建时间
     */
    @JSONField(name="create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private LocalDateTime guanmaiCreateTime;

    /**
     * 采购单的唯一标识符
     */
    @JSONField(name="purchase_sheet_id")
    private String purchaseSheetId;

    /**
     * 站点的唯一标识符
     */
    @JSONField(name="station_id")
    private String stationId;

    /**
     * 站点的名称
     */
    @JSONField(name="station_name")
    private String stationName;

    /**
     * 采购单据的状态，取值如下：
     * <ul>
     *     <li>2: 已提交</li>
     *     <li>3: 未提交</li>
     * </ul>
     */
    @JSONField(name="status")
    private int status;

    /**
     * 采购单据的来源，取值如下：
     * <ul>
     *     <li>0: 采购任务</li>
     *     <li>1: 小程序/app</li>
     *     <li>2: 手动新建</li>
     * </ul>
     */
    @JSONField(name="source")
    private int source;

    /**
     * 采购订单的提交时间
     */
    // 提交时间，LocalDateTime类型，记录采购单提交的具体时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    @JSONField(name="submit_time")
    private LocalDateTime submitTime;

    /**
     * 供应商的唯一标识符
     */
    @JSONField(name="supplier_id")
    private String supplierId;

    /**
     * 供应商的名称
     */
    @JSONField(name="supplier_name")
    private String supplierName;

    /**
     * 采购员的唯一标识符
     */
    @JSONField(name="purchaser_id")
    private String purchaserId;

    /**
     * 采购员的名称
     */
    @JSONField(name="purchaser_name")
    private String purchaserName;

    /**
     * 关于采购订单的备注信息
     */
    @JSONField(name="remark")
    private String remark;

    /**
     * 建单员，用于记录创建该采购订单的人员相关信息（具体根据实际业务确定更详细含义）
     */
    private String operator;
    //子项
    @JsonProperty("details")
    @TableField(exist = false)
    List<PurchaseOrderDetailItem> details;
}
